package calculator.equationnodes;

/*
 * BinOpNode.java
 * Author: Ben McCormick
 * Written: Jan 2 2011
 * Last Edited: May 16 2011
 * Ben McCormick 2011
 * This file is part of The Eikona Project .
 *    Copyright 2011 Ben McCormick
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *    
 *    http://www.apache.org/licenses/LICENSE-2.0
 *    
 *     Unless required by applicable law or agreed to in writing, software
 *     distributed under the License is distributed on an "AS IS" BASIS,
 *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *     See the License for the specific language governing permissions and
 *     limitations under the License.
 */


public abstract class BinOpNode extends EquationNode {

	protected EquationNode lchild, rchild;
	
	protected BinOpNode()
	{
		type = "b";
	}
	
	
	/** Set the left child for the operator */
	public void setLChild(EquationNode _lsib)
	{
		lchild = _lsib;
	}

	/** Set the right child for the operator */
	public void setRChild(EquationNode _rsib)
	{
		rchild = _rsib;
	}

	/** Get the Left child for the operator */
	public EquationNode getLChild()
	{
		return lchild;
	}
	
	/** Get the right child for the operator */
	public EquationNode getRChild()
	{
		return rchild;
	}
	
	
	public String toString()
	{
		if(lchild != null && rchild != null)
		{
			return lchild+name+rchild;
		}
		else return name;
	}
	
	@Override
	public int numChildren() {
		// TODO Auto-generated method stub
		return 2;
	}
	

}
